@@ -0,0 +1,67 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+import logging |
|
4 |
+ |
|
5 |
+from django.conf import settings |
|
6 |
+from django.db import transaction |
|
7 |
+from django_logit import logit |
|
8 |
+from django_response import response |
|
9 |
+from django.db.models import Q |
|
10 |
+ |
|
11 |
+from account.models import UserInfo |
|
12 |
+from goods.models import GoodsInfo, PackInfo |
|
13 |
+from kol.models import KOLInfo |
|
14 |
+from pay.models import OrderInfo |
|
15 |
+ |
|
16 |
+logger = logging.getLogger('logit') |
|
17 |
+ |
|
18 |
+@logit(res=True) |
|
19 |
+@transaction.atomic |
|
20 |
+def order_list(request): |
|
21 |
+ kol_id = request.POST.get('kol_id', '') |
|
22 |
+ pack_id = request.POST.get('pack_id', '') |
|
23 |
+ ftime = request.POST.get('ftime', '') |
|
24 |
+ ttime = request.POST.get('ttime', '') |
|
25 |
+ query = request.POST.get('query', '') |
|
26 |
+ |
|
27 |
+ page = request.POST.get('page', 0) |
|
28 |
+ num = request.POST.get('num', 20) |
|
29 |
+ |
|
30 |
+ infos = OrderInfo.objects.filter(Q(phone__contains=query) | Q(name__contains=query), kol_id__contains=kol_id, pack_id__contains=pack_id, pay_status=1) |
|
31 |
+ |
|
32 |
+ res = [] |
|
33 |
+ |
|
34 |
+ for info in infos: |
|
35 |
+ goods_info = [] |
|
36 |
+ try: |
|
37 |
+ pack = PackInfo.objects.get(pack_id=info.pack_id) |
|
38 |
+ kol = KOLInfo.objects.get(kol_id=info.kol_id) |
|
39 |
+ |
|
40 |
+ for g in info.goods_info: |
|
41 |
+ try: |
|
42 |
+ goods = GoodsInfo.objects.get(good_id=g.get('good_id', '')) |
|
43 |
+ goods_info.append({ |
|
44 |
+ 'title': goods.title, |
|
45 |
+ 'num': g.get('num', 0) |
|
46 |
+ }) |
|
47 |
+ except: |
|
48 |
+ continue |
|
49 |
+ |
|
50 |
+ res.append({ |
|
51 |
+ 'name': info.name, |
|
52 |
+ 'phone': info.phone, |
|
53 |
+ 'address': info.address, |
|
54 |
+ 'paid_at': info.paid_at, |
|
55 |
+ 'order_id': info.order_id, |
|
56 |
+ 'transaction_id': info.transaction_id, |
|
57 |
+ 'tracking_number': info.tracking_number, |
|
58 |
+ 'goods_info': goods_info, |
|
59 |
+ 'kol_name': kol.name, |
|
60 |
+ 'pack_title': pack.title |
|
61 |
+ }) |
|
62 |
+ except: |
|
63 |
+ continue |
|
64 |
+ |
|
65 |
+ return response(200, 'Order List Success', u'获取订单列表成功', { |
|
66 |
+ 'orders': res |
|
67 |
+ }) |
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.conf.urls import url |
4 | 4 |
|
5 |
-from api import mini_views, oauth_views, pack_views |
|
5 |
+from api import mini_views, oauth_views, pack_views, admin_views |
|
6 | 6 |
from pay import views as pay_views |
7 | 7 |
|
8 | 8 |
|
@@ -21,6 +21,12 @@ urlpatterns += [ |
||
21 | 21 |
] |
22 | 22 |
|
23 | 23 |
urlpatterns += [ |
24 |
+ url(r'^admin/order/list$', admin_views.order_list, name='order_list'), # 订单列表 |
|
25 |
+] |
|
26 |
+ |
|
27 |
+ |
|
28 |
+ |
|
29 |
+urlpatterns += [ |
|
24 | 30 |
url(r'^3rd/or$', oauth_views.oauth_redirect, name='3rd_or'), |
25 | 31 |
url(r'^3rd/oauth_redirect$', oauth_views.oauth_redirect, name='3rd_oauth_redirect'), |
26 | 32 |
] |
@@ -71,4 +71,4 @@ class OrderInfo(BaseModelMixin): |
||
71 | 71 |
verbose_name_plural = _('订单信息') |
72 | 72 |
|
73 | 73 |
def __unicode__(self): |
74 |
- return self.pk |
|
74 |
+ return self.pk |